package Factory;

/**
 * @author Jimmy Zhan WORKSTATION
 * @date 2023/6/23 19:08
 * 说明：简单工厂模式  也叫静态工厂模式，顾名思义就是把所有的产品类型都写好，然后工厂来创建
 *      静态工厂模式的关键在于：
 *              使用一个静态方法来接收参数，根据接收的参数来创建相应的实例
 */

public class SimpleFactory {

    // 创建工厂
    public static Product createProduct(String type) {
        Product product;
        if (type.equals("A"))   product = new ProductA();
        else if (type.equals("B"))   product =  new ProductB();
        else {
            System.out.println("No such type of product.");
            product = null;
        }
        return product;
    }

    public static void main(String[] args) {
        // 使用工厂
        Product product = SimpleFactory.createProduct("B");
        product.print();
    }
}

abstract class Product{
    public abstract void print();
}

class ProductA extends Product{
    @Override
    public void print() {
        System.out.println("this is A");
    }
}

class ProductB extends Product{
    @Override
    public void print() {
        System.out.println("this is B");
    }
}
